Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
Geth v1.14.0 switches over the default state trie representation from
hash
mode topath
mode (i.e.--state.scheme
flipped formhash
topath
) (#29108). This change does not affect Geth instances with pre-existing databases, in the case of which Geth continues to use whatever the existing database's format is. If no previous database exists however, for full nodes, Geth will now default topathdb
. The main advantage is built-in, online historical state pruning; no more runaway state growth.--state.scheme=hash
for now. That said, we will be droppinghash
mode sooner rather than later, so we advise everyone running full nodes to gradually switch, if they haven't yet.path
mode, so archive nodes will still run inhash
mode. Naturally, hash mode will not be dropped until a fullpath
archive lands and people have enough time to switch to it.Geth v1.14.0 introduces a brand new live-tracing feature, where one or more transaction tracers might be injected into the block processing pipeline, ensuring that tracing and execution happen in lockstep (#29189). Since Go does not have a cross platform, OS native plugin infrastructure, adding live tracers needs to be done at the Geth source code level, and Geth itself subsequently rebuilt. That said, the advantage is that such tracers have full execution flexibility to do whatever they like and however they like. Please see the live-tracer changelog and docs for details.
Geth v1.14.0 replaces the completely random transaction propagation paths (in the Ethereum P2P network) with pseudo-random ones, that ensure transactions from the same account follow the same path in the network (as long as no peer churn happens). The purpose is to allow a burst of transactions from the same account to ripple through the network on the same connections, minimising reordering. Whilst this doesn't provide any guarantees, nor does it replace the potential need for more complex routing logic, it should make nonce gaps significantly less likely, reducing the probability of dropped transactions during bursts (#29034).
Geth v1.14.0 drops support for running pre-merge networks (#29169). This does not mean that Geth will not be able to process or validate pre-merge blocks, rather that starting v1.14.0, Geth must have a consensus client drive it's chain selection. Geth drops the forward-sync mode of operation, where it imports blocks based on PoW (ethash) or PoA (clique) difficulties.
terminalTotalDifficultyPassed: true
field in theirgenesis.json
. This requirement will be dropped (along with even caring at all about this field) in a few releases, but for now this field produces a clear error message for the user of what's wrong with their pre-merge network.Geth v1.14.0 stops automatically constructing the pending block (#28623). Performance wise there is a significant cost to creating a potential pending block, yet most node operators do not care about it. Not even validators need the pending block. This work also drops support for mining/signing a block "off-demand" (i.e. not via the engine API, rather by Geth itself), meaning Clique signing is also removed going forward.
Geth v1.14.0 removes support for filtering pending logs. This is following the previous change of creating the pending block only on demand. We see next to no value in monitoring the logs of a random subset of transactions that might (but probably mostly will not) end up in the next block. Power users who wish to monitor the transaction pool for MEV (or similar) purposes, should hook into Geth directly and extract the exact data they need, rather than rely on insufficient API endpoints.
Geth v1.14.0 ships a beacon chain light client (#28822, #29308, #29335, #29532, #29567). It uses the REST API of beacon nodes and requires the
beacon / light_client namespace
, currently supported by Lodestar and Nimbus (specs).blsync
executable can drive any execution layer node through the standard engine API or can just do a "test run" printing block numbers and hashes to the console. The integrated mode can do the same inside Geth. If you specify at least one suitable consensus layer REST API endpoint with the--beacon.api
flag, then Geth will run without a beacon node connected through the engine API.Geth v1.14.0 switched to using Go v1.22 by default (#28946), which means we've dropped support for Go v1.20. Geth also started using of new features from Go v1.21 in our codebase, so building with Go v1.20 will probably error from now on. Just a heads up.
Features
geth db inspect-history
command to inspect pathdb state history (#29267).libusb
tohid
for simpler hardware wallet support (#28945, #29175, #29176).prestateTrancer
to take into account 4844 blobs and their fees (#29168).ethclient
andgethclient
packages with support for 4844 blob fields (#29198).--metrics.expensive
(#29191).log/slog
package instead ofgolang/exp
(#29302).kilic
tognark
(#29441).pebble
is overloaded (#29478).eth_blobBaseFee
RPC method, extendeth_feeHistory
with blobs (#29140).Bugfixes
geth dump
andgeth snapshot dump
(#29100).devp2p
command to not ignore specified bootnodes (#29091).prestateTracer
to return the correct nonce for contract creations (#29099).devp2p
command (#29257).hashdb
mode (#29341).GetClientVersion
(#29351).We'd also like to shout out to a very high number of authors sending many nitpick PRs. Whilst we are not entirely sure about the intent behind these PRs (commit farming and all), we are nonetheless happy that the Geth codebase gets better.
For a full rundown of the changes please consult the Geth 1.14.0 release milestone.
As with all our previous releases, you can find the:
ethereum/client-go
.